#1、open函数用于打开文件，open(文件路径，打开方式，字符编码)
    #文件路径，可以写绝对路径，也可以写相对路径
    #打开方式：r只读，w重写，a追加，b二进制（读写图片文件），a+
    #字符编码：英文不需要考虑，中文有unicode、GBK、utf-8等方式，必须与文件的字符编码一致才能正确的读取中文
#2、read函数用于读取文件内容
    #read（）读取中文
    #read（n）读取n个字符
        #如果多次读取n个字符，是接着往后读，不是从头开始
        #\n（Enter回车）也算一个字符
#2.2、readlines函数，用于读取文件行
    #会返回一个列表，列表的每个元素都是文件的一行
#3、write函数用于写入内容
    #打开方式w 重写，如果文件不存在会新建文件，每次打开文件会先清空文件，再写入，是重写
    #打开方式a 追加，如果文件不存在会新建文件，每次都在文件尾部追加内容，是续写
#4、close函数用于关闭文件
#5、内部库csv模块，可以用于读取csv文件
    #csv文件，即可以用记事本读取，也可以用excel读取
import csv
f = open(r'C:\Users\Administrator\Desktop\作业\7.Python\study_python128\folder\file004.csv','r')
reader =csv.DictReader(f)       #实例化对象reader，把f作为实参传递到Dictreader类中
lst=[]                  #定义一个空列表
for l in reader:        #遍历reader，就是读取csv文件的每一行内容
    lst.append(l)       #把每行内容添加到列表中
f.close()
print(lst)              #lst是一个列表，列表中的每个元素都是一个字典
print(lst[1]['name'],lst[1]['age'])     #读取列表lst的第2个元素，它是一个字典，读取字典lst[1]的‘name'和'age'键


#练习：复制一张图片
#以rb的方式打开图片，读取源文件内容
# f1=open(r'C:\Users\Administrator\Desktop\gy.jpg','rb')
# t=f1.read()
# f1.close()
#以wb的方式新建另一个图片文件，写入读取的内容
# f2=open(r'C:\Users\Administrator\Desktop\作业\7.Python\study_python128\folder\file003.jpg','wb')
# f2.write(t)
# f2.close()
#案例4 用代码新建一个文件file002.txt，并写入一行内容
# f =open(r'C:\Users\Administrator\Desktop\作业\7.Python\study_python128\folder\file002.txt','w',encoding='utf-8')
# f.write('天青色等烟雨，而我在等你。\n')
# f.close()
# f =open(r'C:\Users\Administrator\Desktop\作业\7.Python\study_python128\folder\file002.txt','a',encoding='utf-8')
# f.write('炊烟袅袅升起，隔江千万里。\n')
# f.close()
#案例3 打开文件，按行读取文件内容
# f =open(r'C:\Users\Administrator\Desktop\作业\7.Python\study_python128\folder\file001.txt','r',encoding='utf-8')
# t=f.readlines()
# print(t)
# f.close()
# 案例2 打开文件，连续读取5个字符
# f =open(r'C:\Users\Administrator\Desktop\作业\7.Python\study_python128\folder\file001.txt','r',encoding='utf-8')
# t=f.read(5)
# print(t)
# t=f.read(5)
# print(t)
# f.close()
#案例1 打开文件，读取全部内容
# f =open(r'C:\Users\Administrator\Desktop\作业\7.Python\study_python128\folder\file001.txt','r',encoding='utf-8')
# t=f.read()
# print(t)
# f.close()



